home *** CD-ROM | disk | FTP | other *** search
- {
- For this sort program, I needed a routine to convert a byte value into a
- string with leading zeros. So I made one in BASM: Byte2lzStr. If you want,
- include this routine in SWAG.
- }
-
- var s: string;
- tel, n : byte;
-
- procedure Byte2lzStr( n, width: byte; var str: string ); assembler;
- { Byte to string with leading zeros }
- asm
- std { string operations backwards }
- mov al, [n] { numeric value to convert }
- mov cl, [width] { width of str }
- xor ch, ch { clear ch }
- les di, str { adress of str }
- mov [di], cl { length of str }
- add di, cx { start with last char str }
- @start: jcxz @exit { done? }
- aam { divide al by 10 }
- add al, 30h { convert remainder to char }
- stosb { store digit }
- xchg al, ah { swap remainder and quotient }
- dec cl { count down }
- jmp @start { next digit }
- @exit:
- end { Byte2lzStr };
-
- begin
- randomize;
- for tel := 1 to 24 do
- begin
- n := random( 256 );
- Byte2lzStr( n, 5, s );
- writeln( tel:2,': ', n:3,' ', s,' [',length(s),']' );
- end;
- end.